package com.lingjtx.common.security.common;

import java.util.Collection;

public class DataScope {

    // 数据权限范围：对于B端用户账号体系来说，部门就是所属“公司/组织”，每个业务说发不一样，也可以是分区域

    // 角色数据范围：全部，仅自己，本部门，自定义

    // 对于C端用户，所涉及到的数据列表权限很少，Iot-toc（家庭版Iot）设备标签分组的一个概念，类似微信标签分组

    // 1-仅自己，2-本部门，3-自定义，4-全部（数据范围权限从小到大，当该用户有多角色的时候，数据权限选择最大的）
    private Byte scopeType;

    // 限制范围的字段，限制查询范围：scopeType是单选的，要么仅自己field="user_id"
    // 要么就是本部门field="dept_id"
    // 要么就是自定义field="dept_id"或者field="user_id"
    private String field;

    // 当仅自己和本部门的时候，字段的值，在sql中条件的等于（=）
    private Long value;

    // 当自定义或者本部门（在于查询数据主表中没有区分部门的字段）的时候，查询条件的集合
    // 在MySQL中条件用IN(list)
    private Collection<Long> list;

    private String alias = ""; // 联表查询的时候，表的别名

    private String sqlWhere;

    public Byte getScopeType() {
        return scopeType;
    }

    public void setScopeType(Byte scopeType) {
        this.scopeType = scopeType;
    }

    public String getField() {
        return field;
    }

    public void setField(String field) {
        this.field = field;
    }

    public Long getValue() {
        return value;
    }

    public void setValue(Long value) {
        this.value = value;
    }

    public Collection<Long> getList() {
        return list;
    }

    public void setList(Collection<Long> list) {
        this.list = list;
    }

    public String getAlias() {
        return alias;
    }

    public void setAlias(String alias) {
        this.alias = alias;
    }

    public String getSqlWhere() {
        return sqlWhere;
    }

    public void setSqlWhere(String sqlWhere) {
        this.sqlWhere = sqlWhere;
    }
}
